Method, apparatus, and computer program for modeling driving route for automatic driving of vehicle

ABSTRACT

Provided are a method, apparatus, and computer program for modeling a driving route for automatic driving of a vehicle. According to various embodiments, a method of modeling a driving route for automatic driving of a vehicle, which is executed by a computing device, includes setting a plurality of reference points; and generating a driving route for autonomous driving control of the vehicle based on positions of the plurality of set reference points, in which the generated driving route is a set of curves each corresponding to one of a straight section, a curved section and a clothoid section connecting the straight section and the curved section and is expressed as a curvature function according to displacement.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims priority to and the benefit of Korean PatentApplication No. 10-2022-0038129, filed on Mar. 28, 2022, the disclosureof which is incorporated herein by reference in its entirety.

BACKGROUND 1. Field of the Invention

Various embodiments of the present invention relate to a method,apparatus, and computer program for modeling a driving route forautomatic driving of a vehicle.

2. Discussion of Related Art

For the convenience of a user driving a vehicle, various sensors andelectronic devices (e.g., an advanced driver assistance system (ADAD))are being provided, and in particular, technological development for anautonomous driving system of a vehicle is actively being conducted.

Here, in an autonomous driving system, a vehicle recognizes thesurrounding environment without driver intervention and automaticallydrives to a given destination according to the recognized surroundingenvironment.

In the autonomous driving system, when an autonomous driving vehiclewants to drive from a starting point to an ending point, a driving routefrom the starting point to the ending point is generated based on mapdata, and the autonomous driving vehicle is controlled to driveaccording to the generated driving route.

However, since the driving route generated in the conventionalautonomous driving system simply connects the starting point and theending point to generate the driving route, dynamic characteristics ofan autonomous driving vehicle driven according to the correspondingdriving route may not be taken into account, and there is a problem incontrolling an autonomous driving vehicle to forcibly change directions.

In addition, an autonomous driving system controls a steering system orthe like based on curvature information of a driving route. When thedriving route has large or frequent curvature changes, there is aproblem in that the steering of the vehicle is large and frequentlychanged, which adversely affects riding comfort.

SUMMARY OF THE INVENTION

The present invention is to solve the problem of the autonomous drivingcontrol in the conventional autonomous driving system described above,and provides a method, apparatus, and computer program for modeling adriving route for automatic driving of a vehicle capable of improvingthe riding comfort of passengers of an autonomous driving vehicle bymodeling a driving route including a clothoid curve upon modeling adriving route for autonomous driving control of the vehicle.

Objects of the present invention are not limited to the objectsdescribed above, and other objects that are not mentioned may beobviously understood by those skilled in the art from the followingdescription.

The present invention may provide a method of modeling a driving routefor automatic driving of a vehicle, which is executed by a computingdevice, including: setting a plurality of reference points; andgenerating a driving route for autonomous driving control of the vehiclebased on positions of the plurality of set reference points, in whichthe generated driving route is a set of curves each corresponding to oneof a straight section, a curved section, and a clothoid sectionconnecting the straight section and the curved section and is expressedas a curvature function according to displacement.

The generating of the driving route may include: setting a plurality ofparameters; and modeling a driving route function corresponding to thestraight section, the curved section, and the closed section using theplurality of set parameters, and the number of the plurality of setparameters may be determined depending on degree of the modeled drivingroute function.

The modeling of the driving route function may include: calculating anerror between positions of each of the plurality of set reference pointsand the driving route function, and correcting the plurality of setparameters by regression analysis so that the calculated error has aminimum value; and correcting the modeled driving route function usingthe plurality of corrected parameters.

The modeling of the driving route function may include: modeling areference route function using the plurality of set reference points;calculating an error between the reference route function and thedriving route function, and correcting the plurality of set parametersby regression analysis so that the calculated error has a minimum value;and correcting the modeled driving route function using the plurality ofcorrected parameters.

The calculating of the error may include calculating the error using atleast one of position coordinates, an angle, and a curvature between apoint on the reference route function and a point on the driving routefunction corresponding to the one point on the reference route function.

The modeling of the reference route function may include: estimating areference route function in a form of a polynomial function connectingthe plurality of set reference points; setting a boundary condition forthe plurality of reference points according to degree of the estimatedreference route function; and modeling the reference route function inthe form of the polynomial function expressed as the curvature functionaccording to the displacement by determining the estimated referenceroute function according to the set boundary condition.

The correcting of the plurality of set parameters may include: assigninga weight to each of the plurality of set reference points; andcorrecting the plurality of set parameters using the assigned weight andthe calculated error.

The modeling of the driving route function may include: modeling areference route function using the plurality of set reference points;comparing a position when the vehicle drives a predetermined distanceaccording to the modeled reference route function and a position whenthe vehicle drives the predetermined distance according to the modeleddriving route function to calculate an error and correcting theplurality of set parameters by regression analysis so that thecalculated error has a minimum value; and correcting the modeled drivingroute function using the plurality of corrected parameters.

The modeling of the driving route function may further include verifyingthe modeled driving route function.

The method may further include: verifying whether a separation distancebetween the modeled driving route function and each of the plurality ofset reference points is less than or equal to a preset value; andadopting the modeled driving route function as a final driving routewhen all the separation distances between the modeled driving routefunction and the plurality of set reference points are less than orequal to the preset value as a result of the verification.

The present invention may provide a computing device for performing amethod of modeling a driving route for automatic driving of a vehicle,including: a processor; a network interface; a memory; and a computerprogram loaded into the memory and executed by the processor, in whichthe computer program may include: an instruction for setting a pluralityof reference points, and an instruction for generating a driving routefor autonomous driving control of the vehicle based on positions of theplurality of set reference points, and the generated driving route is aset of curves each corresponding to one of a straight section, a curvedsection, and a clothoid section connecting the straight section and thecurved section and is expressed as a curvature function according todisplacement.

The present invention may provide a computer program stored in arecording medium readable by a computing device for performing a methodof modeling a driving route for automatic driving of a vehicle, in whichthe computer program is coupled to the computing device to perform thefollowing operations of: setting a plurality of reference points; andgenerating a driving route for autonomous driving control of the vehiclebased on positions of the plurality of set reference points, and thegenerated driving route may be a set of curves each corresponding to oneof a straight section, a curved section, and a clothoid sectionconnecting the straight section and the curved section and is expressedas a curvature function according to displacement.

Other specific details of the invention are contained in the detaileddescription and drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram illustrating an autonomous driving system accordingto an embodiment of the present invention.

FIG. 2 is a hardware configuration diagram of a computing device forperforming a method of modeling a driving route for automatic driving ofa vehicle according to another embodiment of the present invention.

FIG. 3 is a flowchart of a method of modeling a driving route forautomatic driving of a vehicle according to still another embodiment ofthe present invention.

FIGS. 4 and 5 are graphs illustrating a driving route function expressedas a curvature function according to various embodiments.

FIG. 6 is a flowchart illustrating a method of correcting a parameter ofa driving route function using a position of a reference point accordingto various embodiments.

FIG. 7 is a diagram for describing a process of correcting a parameterof a driving route function according to a separation distance between areference point and a driving route function according to variousembodiments.

FIG. 8 is a flowchart for describing a method of correcting a parameterof a driving route function using a reference route function accordingto various embodiments.

FIGS. 9A to 10B are diagrams comparing displacement-curvature graphs ofa reference route function and a driving route function according tovarious embodiments.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

Various advantages and features of the present invention and methodsaccomplishing them will become apparent from the following descriptionof embodiments with reference to the accompanying drawings. However, thepresent invention is not limited to embodiments to be described below,but may be implemented in various different forms, these embodimentswill be provided only in order to make the present invention completeand allow those skilled in the art to completely recognize the scope ofthe present invention, and the present invention will be defined by thescope of the claims.

Terms used in the present specification are for explaining embodimentsrather than limiting the present invention. Unless otherwise stated, asingular form includes a plural form in the present specification.“Comprise” and/or “comprising” used in the present invention indicate(s)the presence of stated components but do(es) not exclude the presence oraddition of one or more other components. Like reference numerals referto like components throughout the specification and “and/or” includeseach of the components described and includes all combinations thereof.Although “first,” “second,” and the like are used to describe variouscomponents, it goes without saying that these components are not limitedby these terms. These terms are used only to distinguish one componentfrom other components. Therefore, it goes without saying that a firstcomponent described below may be a second component within the technicalscope of the present invention.

Unless defined otherwise, all terms (including technical and scientificterms) used in the present specification have the same meanings commonlyunderstood by those skilled in the art to which the present inventionpertains. In addition, terms defined in a commonly used dictionary arenot ideally or excessively interpreted unless explicitly definedotherwise.

Further, the term “unit” or “module” used herein means a hardwarecomponent such as software, FPGA, or ASIC and performs predeterminedfunctions. However, the term “unit” or “module” is not meant to belimited to software or hardware. A “unit” or “module” may be configuredto be stored in a storage medium that can be addressed or may beconfigured to regenerate one or more processors. Accordingly, forexample, a “unit” or “module” includes components such as softwarecomponents, object-oriented software components, class components, andtask components, processors, functions, attributes, procedures,subroutines, segments of a program code, drivers, firmware, a microcode,a circuit, data, a database, data structures, tables, arrays, andvariables. Functions provided in components, “units,” or “modules” maybe combined into fewer components, “units,” or “modules” or furtherseparated into additional components, “units,” or “modules.”

Spatially relative terms “below,” “beneath,” “lower,” “above,” “upper,”and the like may be used to easily describe the correlation between onecomponent and other components as illustrated in drawings. The spatiallyrelative terms should be understood as terms including differentdirections of components during use or operation in addition to thedirections illustrated in the drawings. For example, in a case in whicha component illustrated in the drawings is turned over, a componentdescribed as “below” or “beneath” the other component may be placed“above” the other component. Therefore, the illustrative term “below”may include both downward and upward directions. The components can alsobe aligned in different directions, and therefore the spatially relativeterms can be interpreted according to the alignment.

In this specification, the computer is any kind of hardware deviceincluding at least one processor, and may be understood as including asoftware configuration which is operated in the corresponding hardwaredevice according to the embodiment. For example, the computer may beunderstood as a meaning including any of a smart phone, a tablet PC, adesktop, a notebook, and user clients and applications running on any ofthese devices, but is not limited thereto.

Hereinafter, embodiments of the present invention will be described indetail with reference to the accompanying drawings.

Each step described in the present specification is described as beingperformed by a computer, but subjects of each step are not limitedthereto, and according to embodiments, at least some steps can also beperformed on different devices.

FIG. 1 is a diagram illustrating an autonomous driving system accordingto an embodiment of the present invention.

Referring to FIG. 1 , the autonomous driving system according to theembodiment of the present invention may include a computing device 100,a user terminal 200, an external server 300, and a network 400.

Here, the autonomous driving system illustrated in FIG. 1 is accordingto an embodiment, and components of the autonomous driving system arenot limited to the embodiment illustrated in FIG. 1 , and may be added,changed, or omitted as necessary.

In an embodiment, the computing device 100 may measure a position andattitude of a vehicle 10 (e.g., an autonomous driving vehicle or avehicle in which an automatic driving function is activated) andrecognize the surrounding environment of the vehicle 10. For example,the computing device 100 may collect sensor data from a sensor (e.g., alight detection and ranging (LiDAR) sensor, radar sensor, camera sensor,etc.) provided inside the vehicle 10, and may utilize the collectedsensor data to measure the position and attitude of the autonomousdriving vehicle 10 and/or recognize the surrounding environment of thevehicle 10 by analyzing the collected sensor data.

Also, the computing device 100 may perform autonomous driving control ofthe vehicle 10 based on the surrounding environment of the vehicle 10recognized according to the above method.

According to various embodiments, the computing device 100 may generatea driving route connecting a departure point (e.g., current position)and an arrival point (e.g., destination set by a user) of the vehicle 10for the autonomous driving control of the vehicle 10, and control thevehicle 10 to perform a driving operation according to the generateddriving route.

According to various embodiments, the computing device 100 may beconnected to the user terminal 200 through the network 400, and mayprovide information on a driving route generated through the aboveprocess to the user terminal 200.

Here, the user terminal 200 may be an infotainment system providedinside the vehicle 10, but is not limited thereto. Accordingly, the userterminal 200 is a wireless communication device that ensures portabilityand mobility, and may be a portable terminal that a passenger ridinginside the vehicle 10 may carry. Examples of the user terminal 200 mayinclude all types of handheld-based wireless communication devices suchas a navigation device, a personal communication system (PCS), globalsystem for mobile communication (GSM), a personal digital cellular (PDC)phone, a personal handyphone system (PHS), a personal digital assistant(PDA), international mobile telecommunication (IMT)-2000, code divisionmultiple access (CDMA)-2000, W-code division multiple access (W-CDMA), awireless broadband Internet (WiBro) terminal, a smart phone, a smartpad, and a tablet personal computer (PC), but are not limited thereto.

In addition, here, the network 400 may be a connection structure capableof exchanging information between respective nodes such as a pluralityof terminals and servers. For example, the network 400 may include alocal area network (LAN), a wide area network (WAN), the Internet (WorldWide Web (WWW)), a wired/wireless data communication network, atelephone network, a wired/wireless television communication network, orthe like.

In addition, examples of the wireless data communication network mayinclude 3G, 4G, 5G, 3^(rd) Generation Partnership Project (3GPP), 5^(th)Generation Partnership Project (5GPP), long term evolution (LTE), worldinteroperability for microwave access (WiMAX), Wi-Fi, Internet, a localarea network (LAN), a wireless local area network (WLAN), a wide areanetwork (WAN), a personal area network (PAN), radio frequency, aBluetooth network, a near-field communication (NFC) network, a satellitebroadcast network, an analog broadcast network, a digital multimediabroadcasting (DMB) network, and the like, but are not limited thereto.

In one embodiment, the external server 300 may be connected to thecomputing device 100 through the network 400, and may store and managevarious types of information and data necessary for the computing device100 to perform a method of modeling a driving route for automaticdriving of a vehicle, or store and manage various types of informationand data generated by performing the method of modeling a driving routefor automatic driving of a vehicle. For example, the external server 300may be a storage server separately provided outside the computing device100, but is not limited thereto. Hereinafter, a hardware configurationof the computing device 100 for performing the method of modeling adriving route for automatic driving of a vehicle will be described withreference to FIG. 2 .

FIG. 2 is a hardware configuration diagram of a computing device forperforming a method of modeling a driving route for automatic driving ofa vehicle according to another embodiment of the present invention.

Referring to FIG. 2 , according to various embodiments, the computingdevice 100 may include one or more processors 110, a memory 120 intowhich a computer program 151 executed by the processor 110 is loaded, abus 130, a communication interface 140, and a storage 150 for storingthe computer program 151. However, only the components related to theembodiment of the present invention are illustrated in FIG. 2 .Accordingly, those skilled in the art to which the present inventionpertains may understand that general-purpose components other than thoseillustrated in FIG. 2 may be further included.

The processor 110 controls an overall operation of each component of thecomputing device 100. The processor 110 may include a central processingunit (CPU), a micro processor unit (MPU), a micro controller unit (MCU),a graphics processing unit (GPU), or any type of processor well known inthe art of the present invention.

In addition, the processor 110 may perform an operation on at least oneapplication or program for executing the method according to theembodiments of the present invention, and the computing device 100 mayinclude one or more processors.

According to various embodiments, the processor 110 may further includea random access memory (RAM) (not illustrated) and a read-only memory(ROM) for temporarily and/or permanently storing signals (or data)processed in the processor 110. In addition, the processor 110 may beimplemented in the form of a system-on-chip (SoC) including at least oneof a graphics processing unit, a RAM, and a ROM.

The memory 120 stores various types of data, commands and/orinformation. The memory 120 may load the computer program 151 from thestorage 150 to execute methods/operations according to variousembodiments of the present invention. When the computer program 151 isloaded into the memory 120, the processor 110 may perform themethod/operation by executing one or more instructions constituting thecomputer program 151. The memory 120 may be implemented as a volatilememory such as a RAM, but the technical scope of the present disclosureis not limited thereto.

The bus 130 provides a communication function between the components ofthe computing device 100. The bus 130 may be implemented as varioustypes of buses, such as an address bus, a data bus, and a control bus.

The communication interface 140 supports wired/wireless Internetcommunication of the computing device 100. In addition, thecommunication interface 140 may support various communication methodsother than the Internet communication. To this end, the communicationinterface 140 may include a communication module well known in the artof the present invention. In some embodiments, the communicationinterface 140 may be omitted.

The storage 150 may non-temporarily store the computer program 151. Whena process of modeling a driving route for automatic driving of a vehicleis performed through the computing device 100, the storage 150 may storevarious types of information necessary to provide the process ofmodeling a driving route for automatic driving of the vehicle.

The storage 150 may include a nonvolatile memory, such as a ROM, anerasable programmable ROM (EPROM), an electrically erasable programmableROM (EEPROM), and a flash memory, a hard disk, a removable disk, or anywell-known computer-readable recording medium in the art to which thepresent invention pertains.

The computer program 151 may include one or more instructions to causethe processor 110 to perform methods/operations according to variousembodiments of the present invention when loaded into the memory 120.That is, the processor 110 may perform the method/operation according tovarious embodiments of the present invention by executing the one ormore instructions.

In one embodiment, the computer program 151 may include one or moreinstructions to cause a method of modeling a driving route for automaticdriving of a vehicle including setting a plurality of reference pointsand generating a driving route for autonomous driving control of thevehicle based on positions of the plurality of set reference points.

Operations of the method or algorithm described with reference to theembodiment of the present invention may be directly implemented inhardware, in software modules executed by hardware, or in a combinationthereof. The software module may reside in a RAM, a ROM, an EPROM, anEEPROM, a flash memory, a hard disk, a removable disk, a compact discread-only memory (CD-ROM), or in any form of computer-readable recordingmedium known in the art to which the invention pertains.

The components of the present invention may be embodied as a program (orapplication) and stored in a medium for execution in combination with acomputer which is hardware. The components of the present invention maybe executed in software programming or software elements, and similarly,embodiments may be realized in a programming or scripting language suchas C, C++, Java, and assembler, including various algorithms implementedin a combination of data structures, processes, routines, or otherprogramming constructions. Functional aspects may be implemented inalgorithms executed on one or more processors. Hereinafter, a hardwareconfiguration of the computing device 100 performing the method ofmodeling a driving route for automatic driving of a vehicle will bedescribed with reference to FIGS. 3 to 10 .

FIG. 3 is a flowchart of a method of modeling a driving route forautomatic driving of a vehicle according to still another embodiment ofthe present invention.

Referring to FIG. 3 , in operation S110, the computing device 100 mayset a plurality of reference points to generate the driving route of thevehicle 10.

According to various embodiments, the computing device 100 may obtain auser input indicating the plurality of reference points from a user, andmay set the plurality of reference points according to the obtained userinput. For example, the computing device 100 may collect map data for apredetermined area including a current position of the vehicle 10 andprovide a user interface (UI) for outputting the collected map data tothe user terminal 200, and obtain the user input indicating theplurality of reference points on the map data output on the display ofthe user terminal 200 to set the plurality of reference points.

According to various embodiments, the computing device 100 may receive astarting point and an ending point set by a user through the map data,and automatically set a plurality of intermediate points positionedbetween the starting point and the ending point using the set startingpoint and ending point.

As an example, the computing device 100 may analyze map data for apredetermined area using an image analysis model (e.g., a convolutionalneural network (CNN) model, a recurrent neural network (RNN) model, or amodel combining CNN and RNN models) to recognize a lane of a roadconnecting a starting point and an ending point and select one or moreintermediate points between the starting point and the ending pointbased on the result of recognizing the lane of the road.

As another example, the computing device 100 may acquire attributeinformation on a road, such as the number of lanes, a width of a lane, ashape of the road, etc., as the result of recognizing the lane of theroad, and accordingly, set one or more intermediate points (e.g., acurved section, etc.) between a starting point and an ending point.However, the present invention is not limited thereto.

In operation S120, the computing device 100 may generate the drivingroute based on the positions of the plurality of set reference points inoperation S110.

According to various embodiments, when the driving route generated basedon the plurality of reference points includes a straight section and acurved section, the computing device 100 may model a driving routefunction, which is a set of curves each corresponding to one of astraight section, a curved section, and a clothoid section, by modelingthe curves each corresponding to one of the straight section, the curvedsection, and the clothoid section connecting the straight section andthe curved section.

The clothoid curve has a shape similar to a trace of driving drawn bythe vehicle 10 when a steering wheel of the vehicle 10 rotates at aconstant speed while a speed of the vehicle 10 remains constant.

Therefore, when the driving route is modeled in the form of the clothoidcurve, since a change in curvature is constant, a sharp change in asteering system of the vehicle 10 may be removed to improve the ridingcomfort.

According to various embodiments, the computing device 100 may set aplurality of parameters, and use the plurality of parameters to generatea modeled driving route function (hereinafter, a “driving routefunction”) including the straight section, the curved section, and theclothoid section.

In this case, the computing device 100 may determine the number of theplurality of parameters according to degree of the driving routefunction.

FIGS. 4 and 5 are graphs showing a driving route function expressed as acurvature k function according to displacement s. Referring to FIGS. 4and 5 , in the case of the clothoid curve, the curvature function isexpressed in a linear function, that is, in a form in which a slope ofthe curvature according to the displacement is constant.

The number of variables required to model the driving route includingthe clothoid curve is 3n+5 (where n denotes the degree of the drivingroute function and an integer value), and when n=1 (e.g., FIG. 4 ), atotal of eight variables (s ₀, s₀, s ₁ s₁, s ₂, κ₀, κ₁, κ₂) arerequired, while when n=2 (e.g., FIG. 5 ), a total of 11 variables (s ₀,s₀, s ₁ s₁, s ₂, s₂, s ₃, κ₀, κ₁, κ₂, κ₃) are required.

Accordingly, the computing device 100 may calculate the displacement andcurvature for each of the plurality of reference points using theinformation (e.g., position coordinates) on the plurality of referencepoints, and use the calculated displacement and curvature to model thedriving route including the clothoid curve. Here, various methods ofcalculating displacement and curvature using position coordinates of aplurality of reference points are known, and thus are not specificallylimited herein.

According to various embodiments, the computing device 100 may correctthe driving route function using the information on each of theplurality of reference points. Hereinafter, a method of correcting amodeled driving path function will be described with reference to FIGS.6 to 10B.

FIG. 6 is a flowchart illustrating a method of correcting a parameter ofa driving route function using a position of a reference point accordingto various embodiments.

Referring to FIG. 6 , according to various embodiments, the computingdevice 100 may correct the driving route function by comparing theposition of the reference point with the driving route function.

In operation S210, the computing device 100 may compare the positions(e.g., X and Y coordinates of each of the plurality of reference points)of each of the plurality of reference points and the driving routefunction (e.g., X and Y coordinates of each point on the driving routecorresponding to the plurality of reference points) to calculate anerror.

According to various embodiments, the computing device 100 may calculatean error between the plurality of reference points and the driving routefunction using Equations 1 and 2 below.

$\begin{matrix}{{Err}_{1} = {R_{1}^{T}R_{1}}} & {< {{Equation}1} >}\end{matrix}$ $\begin{matrix}{R_{1} = \begin{bmatrix}{x_{1} - {\hat{x}\left( {\hat{s}}_{1} \right)}} \\{x_{2} - {\hat{x}\left( {\hat{s}}_{2} \right)}} \\\ldots \\{x_{k} - {\hat{x}\left( {\hat{s}}_{k} \right)}} \\{y_{1} - {\hat{y}\left( {\hat{s}}_{1} \right)}} \\{y_{2} - {\hat{y}\left( {\hat{s}}_{2} \right)}} \\\ldots \\{y_{k} - {\hat{y}\left( {\hat{s}}_{k} \right)}}\end{bmatrix}} & {< {{Equation}2} >}\end{matrix}$

Here, Err₁ may denote an error between a plurality of reference pointsand positions of points on the modeled driving route corresponding toeach of the plurality of reference points, x₁ to x_(k) may denote Xcoordinates of the plurality of reference points, y₁ to y_(k) may denoteY coordinates of the plurality of reference points, {circumflex over(x)}(ŝ₁) to {circumflex over (x)}(ŝ_(k)) may denote X coordinates of thepositions of the points on the modeled driving route corresponding toeach of the plurality of reference points, ŷ(ŝ₁) to ŷ(ŝ_(k)) may denoteY coordinates of the positions of the points on the modeled drivingroute corresponding to each of the plurality of reference points, amatrix R₁ may denote an error matrix, and a matrix R₁ ^(T) may denote atranspose matrix of the matrix R₁.

Here, the points on the modeled driving route corresponding to each ofthe plurality of reference points may be a foot of a shortestperpendicular connecting each of the plurality of reference points andthe modeled driving route, but the present invention is not limitedthereto.

In operation S220, the computing device 100 may correct the drivingroute function using the error calculated in operation S210.

According to various embodiments, the computing device 100 may correct aplurality of parameters by the regression analysis so that the errorbetween the plurality of reference points and the driving route functionhas a minimum value, and correct the driving route function using thecorrected plurality of parameters.

According to various embodiments, the computing device 100 may verifywhether a separation distance between the driving route function andeach of the plurality of reference points is less than or equal to apreset value, and as a result of the verification, adopt the modeleddriving route function as a final driving route when all the separationdistances between the modeled driving route function and the pluralityof set reference points are less than or equal to the preset value.

According to various embodiments, the computing device 100 may correctthe plurality of parameters so that the separation distances of thedriving route function and each of the plurality of reference points areless than or equal to a preset value, and correct the driving routefunction using the plurality of corrected parameters.

More specifically, referring to FIG. 7 , first, the computing device 100may calculate separation distances d₁, d₂, and d₃ between a plurality ofreference points 21, 22, and 23 and the driving route function. Here, inthe case of connecting from each of the plurality of reference points21, 22, and 23 to the driving route function by a perpendicular, theseparation distance may be a length of the connected perpendicular.

Thereafter, the computing device 100 may determine whether all of thecalculated separation distances d₁, d₂, and d₃ are less than or equal tothe preset value by comparing the calculated separation distances d₁,d₂, and d₃ with the preset value, and may determine the driving routefunction by determining parameters of a current state when all thecalculated separation distances d₁, d₂, and d₃ are less than or equal tothe preset value. Meanwhile, when at least one of the calculatedseparation distances d₁, d₂, and d₃ exceeds the preset value, thecomputing device 100 may correct the driving route function bycorrecting the parameters so that all the calculated separationdistances d₁, d₂, and d₃ are less than or equal to the preset value.

Here, in performing the operation of correcting the parameters so thatall the calculated separation distances d₁, d₂, and d₃ are less than orequal to the preset value, when the calculated separation distances d₁,d₂, and d₃ are corrected to be 0, the driving route function may becorrected to necessarily pass through the reference points. However, thedriving route function may be corrected to necessarily pass through thereference points, and thus may be corrected to have a sharply changingcurvature, which may adversely affect the riding comfort. As a result,the parameters may be corrected so that all the calculated separationdistances d₁, d₂, and d₃ are less than or equal to the preset valuewithin the range in which the shape of the clothoid curve included inthe driving route function is maintained.

According to various embodiments, the computing device 100 may correct aplurality of parameters so that a maximum value (e.g., a maximum valueof curvature) of the driving route function is less than or equal to apreset value, and correct the driving route function using the pluralityof corrected parameters.

According to various embodiments, the computing device 100 may correctthe plurality of parameters so that a maximum slope value (e.g., maximumslope of a curvature function) of the driving route function is lessthan or equal to the preset value, and correct the driving routefunction using the plurality of corrected parameters.

FIG. 8 is a flowchart for describing a method of correcting a parameterof a driving route function using a reference route function accordingto various embodiments.

Referring to FIG. 8 , according to various embodiments, the computingdevice 100 may correct the driving route function by comparing thereference route function with the driving route function.

In operation S310, the computing device 100 may model the referenceroute function using the plurality of reference points.

According to various embodiments, the computing device 100 may generatea reference route curve connecting two reference points disposed atmutually adjacent positions with respect to the plurality of referencepoints and connect the generated reference route curves, therebygenerating the modeled reference route function (hereinafter, “referenceroute function”) which is a set of the plurality of reference routecurves.

Here, the plurality of reference route curves included in the referenceroute function may be a polynomial function, but are not limitedthereto, and various types of reference route curves such as a circulararc and an elliptical arc may be generated.

More specifically, first, for each of the plurality of reference points,the computing device 100 may estimate the reference route function inthe form of the polynomial function connecting two adjacent referencepoints.

In this case, the computing device 100 may set a boundary condition fortwo reference points according to the degree of the estimated referenceroute function, and may determine the reference route function using theboundary condition for the two reference points.

First, when the reference route function connecting the two referencepoints is in the form of a cubic polynomial function as shown inEquation 3 below, the computing device 100 may set six boundaryconditions (e.g., position coordinates (e.g., X and Y coordinates,angle, and curvature) for each of the two reference points) to estimatethe parameters of the cubic polynomial function.

ƒ(s)=κ=as ³ +bs ² +cs+d  <Equation 3>

Here, f(s) may denote the reference route function, K may denote thecurvature, and S may denote the displacement.

Thereafter, the computing device 100 may determine the reference routefunction by substituting the six boundary conditions, the positioncoordinates (e.g., X and Y coordinates) for each of the two referencepoints, and a driving direction (e.g., θ) of the vehicle 10 when thevehicle 10 is positioned at each of the two reference points, and thecurvature k of the two reference points into the reference routefunction.

In operation S320, the computing device 100 may calculate an error bycomparing the reference route function with the driving route functiongenerated in operation S320.

According to various embodiments, the computing device 100 may set anarbitrary position on the reference route function, and may calculate anerror by comparing arbitrary positions set on the reference routefunction with positions on the driving route function corresponding tothe arbitrary positions. For example, the arbitrary position (e.g.,reference point) set on the reference route function may be comparedwith the position of the foot of the perpendicular that is dropped onthe driving route function at the corresponding position, but thepresent invention is not limited thereto.

That is, when the reference route function is used, the information onthe angle θ and curvature k may be acquired in addition to the positions(e.g., X and Y coordinates) of the reference point. Accordingly, incomparing the reference point with the driving route function, the angleand curvature information may be compared together in addition to theposition, and at least one of the position, angle, and curvature may beused to calculate an error. When modeling the driving route using theinformation, there is an advantage of lowering the computationaldifficulty. In addition, since obtaining the reference curve using theboundary condition of the reference point is a relatively simpleoperation, modeling the driving route through the reference curve mayhelp to reduce the overall amount of computation and the computationtime.

According to various embodiments, the computing device 100 may calculatean error by comparing the arbitrary positions set on the reference routefunction with the positions on the driving route function correspondingto the arbitrary positions using Equations 4 and 5 below.

$\begin{matrix}{{Err}_{2} = {R_{2}^{T}R_{2}}} & {< {{Equation}4} >}\end{matrix}$ $\begin{matrix}{R_{2} = \begin{bmatrix}{{x_{1}\left( s_{1} \right)} - {\hat{x}\left( {\hat{s}}_{1} \right)}} \\{{x_{2}\left( s_{2} \right)} - {\hat{x}\left( {\hat{s}}_{2} \right)}} \\\ldots \\{{x\left( s_{k} \right)} - {\hat{x}\left( {\hat{s}}_{k} \right)}} \\{{y\left( s_{1} \right)} - {\hat{y}\left( {\hat{s}}_{1} \right)}} \\{{y\left( s_{2} \right)} - {\hat{y}\left( {\hat{s}}_{2} \right)}} \\\ldots \\{{y\left( s_{k} \right)} - {\hat{y}\left( {\hat{s}}_{k} \right)}}\end{bmatrix}} & {< {{Equation}5} >}\end{matrix}$

Here, Err₂ may denote the error between the plurality of arbitrarypositions and the positions on the driving route function correspondingto the plurality of arbitrary positions, x(s₁) to x(s_(k)) and y(s₁) toy(s_(k)) may denote the X and Y coordinates of the plurality ofarbitrary positions, {circumflex over (x)}(ŝ₁) to {circumflex over(x)}(ŝ_(k)) and ŷ(ŝ₁) to ŷ(ŝ_(k)) may denote the X and Y coordinates ofthe positions on the driving route function corresponding to theplurality of arbitrary positions, a matrix R₂ may denote an errormatrix, and a matrix R₂ ^(T) may denote a transpose matrix of the matrixR₂.

In operation S330, the computing device 100 may correct the drivingroute function using the error calculated in operation S320.

According to various embodiments, the computing device 100 may correct aplurality of parameters by the regression analysis so that the errorbetween the arbitrary position set on the reference route function andthe position when the vehicle 10 drives according to the driving routefunction by the distance when the vehicle 10 drives to the arbitraryposition according to the reference route function has a minimum value,and correct the driving route function using the plurality of correctedparameters.

According to various embodiments, the computing device 100 may calculatean error by comparing the position when the vehicle 10 drives apredetermined distance according to the reference route function withthe position when the vehicle drives a predetermined distance accordingto the driving route function, that is, the position when the vehicle 10drives the same distance according to the reference route function andthe driving route function, and correct the driving route function usingthe calculated error.

More specifically, first, the computing device 100 may calculate anerror by comparing the position when the vehicle 10 drives apredetermined distance according to the reference route function withthe position when the vehicle 10 drives a predetermined distanceaccording to the driving route function using Equations 6 and 7 below.

$\begin{matrix}{{Err}_{3} = {R_{3}^{T}R_{3}}} & {< {{Equation}6} >}\end{matrix}$ $\begin{matrix}{R_{3} = \begin{bmatrix}{{x\left( s_{1} \right)} - {\hat{x}\left( s_{1} \right)}} \\{{x\left( s_{2} \right)} - {\hat{x}\left( s_{2} \right)}} \\\ldots \\{{x\left( s_{k} \right)} - {\hat{x}\left( s_{k} \right)}} \\{{y\left( s_{1} \right)} - {\hat{y}\left( s_{1} \right)}} \\{{y\left( s_{2} \right)} - {\hat{y}\left( s_{2} \right)}} \\\ldots \\{{y\left( s_{k} \right)} - {\hat{y}\left( s_{k} \right)}}\end{bmatrix}} & {< {{Equation}7} >}\end{matrix}$

Here, Err₃ may denote the error between the position when the vehicle 10drives the predetermined distance according to the reference routefunction and the position when the vehicle 10 drives the predetermineddistance according to the driving route function, x(s₁) to x(s_(k)) andy(s₁) to y(s_(k)) may denote the X and Y coordinates of the positionwhen the vehicle 10 drives a predetermined distance according to thereference route function, {circumflex over (x)}(s₁) to {circumflex over(x)}(s_(k)) and ŷ(s₁) to ŷ(s_(k)) may denote the X and Y coordinates ofthe position when the vehicle 10 drives a predetermined distanceaccording to the driving route function, a matrix R₃ may denote an errormatrix, and R₃ ^(T) may denote a transpose matrix of the matrix R₃.

Thereafter, the computing device 100 may correct a plurality ofparameters by the regression analysis so that the error between theposition when the vehicle 10 drives a predetermined distance accordingto the reference route function and the position when the vehicle 10drives a predetermined distance according to the driving route functionhas a minimum value, and correct the driving route function. That is,the computing device 100 may calculate an error by comparing the valueof the reference route function and the value of the driving routefunction that are calculated using the same parameter and correct thedriving route function using the calculated error, thereby reducing theamount of computation necessary for the error calculation and generatingthe driving route function with high similarity to the reference routefunction.

According to various embodiments, the computing device 100 may calculatean error by comparing at least one of position coordinates, an angle,and a curvature between a point on the reference route function and apoint on the driving route function corresponding to the one point.

For example, the computing device 100 may calculate the error bycomparing the arbitrary positions set on the reference route and acorresponding position on the driving route function with the positionson the driving route function corresponding to the arbitrary positions,and calculate the error by considering both the position coordinates andthe angles of the arbitrary positions set on the reference routefunction and the positions on the driving route function correspondingto the arbitrary positions.

More specifically, the computing device 100 may calculate an errorbetween attributes (e.g., position coordinates and directions (angles)for arbitrary positions) for the plurality of arbitrary positions set onthe reference route and attributes for the positions on the drivingroute function corresponding to the plurality of arbitrary positionsusing Equations 8 and 9 below.

$\begin{matrix}{{Err}_{4} = {R_{4}^{T}R_{4}}} & {< {{Equation}8} >}\end{matrix}$ $\begin{matrix}{R_{4} = \begin{bmatrix}{{x\left( s_{1} \right)} - {\hat{x}\left( {\hat{s}}_{1} \right)}} \\{{x\left( s_{2} \right)} - {\hat{x}\left( {\hat{s}}_{2} \right)}} \\\ldots \\{{x\left( s_{k} \right)} - {\hat{x}\left( {\hat{s}}_{k} \right)}} \\{{y\left( s_{1} \right)} - {\hat{y}\left( {\hat{s}}_{1} \right)}} \\{{y\left( s_{2} \right)} - {\hat{y}\left( {\hat{s}}_{2} \right)}} \\\ldots \\{{y\left( s_{k} \right)} - {\hat{y}\left( {\hat{s}}_{k} \right)}} \\{{\theta\left( s_{1} \right)} - {\hat{\theta}\left( {\hat{s}}_{1} \right)}} \\{{\theta\left( s_{2} \right)} - {\hat{\theta}\left( {\hat{s}}_{2} \right)}} \\\ldots \\{{\theta\left( s_{l} \right)} - {\hat{\theta}\left( {\hat{s}}_{l} \right)}}\end{bmatrix}} & {< {{Equation}9} >}\end{matrix}$

Here, Err₄ may denote the error of the attributes for the plurality ofarbitrary positions set on the reference route and the attributes forthe positions on the driving route function corresponding to theplurality of arbitrary positions, x(s₁) to x(s_(k)) and y(s₁) toy(s_(k)) may denote the X and Y coordinates of the plurality ofarbitrary positions, θ(s₁) to θ(s_(l)) may denote the angles for theplurality of arbitrary positions, {circumflex over (x)}(ŝ₁) to{circumflex over (x)}(ŝ_(k)) and ŷ(ŝ₁) to ŷ(ŝ_(k)) may denote the X andY coordinates of the positions on the driving route functioncorresponding to the plurality of arbitrary positions, {circumflex over(θ)}(ŝ₁) to {circumflex over (θ)}(ŝ_(l)) may denote the angles for thepositions on the driving route function corresponding to the pluralityof arbitrary positions, a matrix R₄ may denote an error matrix, and R₄^(T) may denote a transpose matrix of the matrix R₄.

Also, here, k may be a value smaller than l, but is not limited thereto.

The curvature k according to the displacement s of the driving routefunction may be expressed as a linear function or a constant functionfor each section as shown in Equation 10 below. To obtain positioncoordinates of any position on the driving route function, as shown inEquation 11, an additional integration operation using a trigonometricfunction needs to be performed, whereas, as shown in Equation 12, it iseasier to calculate the angle (direction) through the integration of thecurvature once.

$\begin{matrix}{\hat{K} = {{{as} + {b{or}\hat{K}}} = d}} & {< {{Equation}10} >}\end{matrix}$ $\begin{matrix}\begin{matrix}{{\hat{x}(s)} = {\int_{0}^{s}{\cos\left( {\theta(\sigma)} \right)\, d\sigma}}} \\{{\hat{y}(s)} = {\int_{0}^{s}{\sin\left( {\theta(\sigma)} \right)\, d\sigma}}}\end{matrix} & {< {{Equation}11} >}\end{matrix}$ $\begin{matrix}{\hat{\theta} = {{{\frac{1}{2}{as}^{2}} + {bs} + {c{or}\hat{\theta}}} = {{ds} + e}}} & {< {{Equation}12} >}\end{matrix}$

Accordingly, in comparing the reference route function and the drivingroute function using the arbitrary positions (that is, in calculatingthe error between the two functions), the computing device 100 has theadvantage of lowering the computational difficulty by using the angleand curvature information together rather than using only the positioncoordinates. For example, by reducing the number of error comparisonterms between the position coordinates and increasing the number oferror comparison terms between the angles, it is possible tosignificantly reduce the amount of computation while maintaining errorcomparison performance.

According to various embodiments, the computing device 100 may assign aweight to each of the plurality of reference points, correct theplurality of parameters using the weight and the error, and correct thedriving route function using the plurality of corrected parameters.

More specifically, the computing device 100 may calculate the weightederror using Equations 13 to 15 below.

$\begin{matrix}{{Err}_{5} = {R_{5}^{\prime T}R_{5}^{\prime}}} & {< {{Equation}13} >}\end{matrix}$ $\begin{matrix}{R_{5}^{\prime} = {w^{T}R_{5}}} & {< {{Equation}14} >}\end{matrix}$ $\begin{matrix}{{R_{5} = \begin{bmatrix}{{x\left( s_{1} \right)} - {\hat{x}\left( s_{1} \right)}} \\{{x\left( s_{2} \right)} - {\hat{x}\left( s_{2} \right)}} \\\ldots \\{{x\left( s_{k} \right)} - {\hat{x}\left( s_{k} \right)}} \\{{y\left( s_{1} \right)} - {\hat{y}\left( s_{1} \right)}} \\{{y\left( s_{2} \right)} - {\hat{y}\left( s_{2} \right)}} \\\ldots \\{{y\left( s_{k} \right)} - {\hat{y}\left( s_{k} \right)}}\end{bmatrix}},{w = \begin{bmatrix}w_{1} \\w_{2} \\\ldots \\w_{m}\end{bmatrix}}} & {< {{Equation}15} >}\end{matrix}$

Here, Err₅ may denote the error between the position when the vehicle 10drives a predetermined distance according to the reference routefunction and the position when the vehicle 10 drives a predetermineddistance according to the driving route function, x(s₁) to x(s_(k)) andy(s₁) to y(s_(k)) may denote the X and Y coordinates of the positionswhen the vehicle 10 drives a predetermined distance according to thereference route function, {circumflex over (x)}(s₁) to {circumflex over(x)}(s_(k)) and ŷ(s₁) to ŷ(s_(k)) may denote the X and Y coordinates ofthe positions when the vehicle drives a predetermined distance accordingto the driving route function, w₁ to w_(m) may denote weights assignedto each of the plurality of reference points, a matrix w may be a weightmatrix, a matrix w^(T) may denote a transpose matrix of the matrix w,R₅′ may denote a weighted error matrix, and a matrix R₅′^(T) may be atranspose matrix of the matrix R₅′.

Also, here, k is an integer, m is a positive real number, and m may be2k, or twice k.

For example, when the computing device 100 intends to generate thedriving route function that needs to pass a reference pointcorresponding to a getting-off point where a passenger of the vehicle 10gets off or pass near the reference point corresponding to thegetting-off point by considering a specific reference point among theplurality of reference points as the getting-off point, the computingdevice 100 may generate a weight matrix by assigning a high weight tothe reference point corresponding to the getting-off point compared toother reference points, generate a weighted error matrix by reflectingthe generated weight matrix to the error matrix, and correct the drivingroute function so that the driving route function needs to pass thereference point corresponding to the getting-off point or pass near thereference point corresponding to the getting-off point by correcting theparameter based on the generated error matrix.

As described above, the computing device 100 may model the referenceroute function using the plurality of reference points and model thedriving route function using the modeled reference route function,thereby modeling the driving route function faster than the method ofdirectly using reference points.

For example, since the reference route function includes muchinformation (e.g., angle θ and curvature κ information according to thedisplacement s) compared to the reference point, when the driving routefunction is modeled using the information, the computational difficultyis lowered compared to the method of directly using a reference pointitself. In particular, since modeling the reference route function usingthe boundary condition of the reference point is a relatively simplecomputation process, compared to modeling the driving route functionusing the reference point, modeling the reference route function usingthe reference point and modeling the driving route function through thereference route function are generally advantageous in terms of theamount of computation and the computation time.

Meanwhile, correcting the driving route function by calculating theerror between the reference route function and the driving routefunction does not correct the error between the reference route functionand the driving route function so that the error becomes 0.

The error between the reference route function and the driving routefunction becoming 0 would mean that the reference route function and thedriving route function had exactly the same form. In some cases, thereference route function and the driving route function may be correctedto exactly the same form, but when the reference route function and thedriving route function are modeled to satisfy the boundary condition asillustrated in FIGS. 9A and 9B (when n=1) and FIGS. 10A and 10B (whenn=2), the reference route function and the driving route function may bemodeled to have a curvature that rapidly changes to meet the boundarycondition. As a result, a portion with poor riding comfort may occur.

Therefore, in the method of modeling a driving route for automaticdriving of a vehicle according to various embodiments of the presentinvention, generating the driving route that may maximize the ridingcomfort is considered first, but the driving route is generated fasterby correcting the driving route function based on the reference routefunction.

The above-described method of modeling a driving route for automaticdriving of a vehicle has been described with reference to the flowchartillustrated in the drawings. For a simple explanation, the method ofmodeling a driving route for automatic driving of a vehicle has beendescribed by showing a series of blocks, but the present invention isnot limited to the order of the blocks, and some blocks may be performedin an order different from that shown and performed in the presentspecification, or may be performed concurrently. In addition, new blocksnot described in the present specification and drawings may be added, orsome blocks may be deleted or changed.

According to various embodiments of the present invention, it ispossible to improve the riding comfort of passengers of an autonomousdriving vehicle by modeling a driving route including a clothoid curveupon modeling a driving route for autonomous driving control of thevehicle.

The effects of the present invention are not limited to theabove-described effects, and other effects that are not mentioned may beobviously understood by those skilled in the art from the above detaileddescription.

Although embodiments of the present invention have been described withreference to the accompanying drawings, those skilled in the art willappreciate that various modifications and alterations may be madewithout departing from the spirit or essential feature of the presentinvention. Therefore, it should be understood that the above-mentionedembodiments are not restrictive but are exemplary in all aspects.

What is claimed is:
 1. A method of modeling a driving route forautomatic driving of a vehicle, which is executed by a computing device,the method comprising: setting a plurality of reference points; andgenerating a driving route for autonomous driving control of the vehiclebased on positions of the plurality of set reference points, wherein thegenerated driving route is a set of curves each corresponding to one ofa straight section, a curved section, and a clothoid section connectingthe straight section and the curved section and is expressed as acurvature function according to displacement.
 2. The method of claim 1,wherein the generating of the driving route includes: setting aplurality of parameters; and modeling a driving route functioncorresponding to the straight section, the curved section, and theclosed section using the plurality of set parameters, and the number ofthe plurality of set parameters is determined depending on degree of themodeled driving route function.
 3. The method of claim 2, wherein themodeling of the driving route function includes: calculating an errorbetween positions of each of the plurality of set reference points andthe driving route function, and correcting the plurality of setparameters by regression analysis so that the calculated error has aminimum value; and correcting the modeled driving route function usingthe plurality of corrected parameters.
 4. The method of claim 2, whereinthe modeling of the driving route function includes: modeling areference route function using the plurality of set reference points;calculating an error between the reference route function and thedriving route function, and correcting the plurality of set parametersby regression analysis so that the calculated error has a minimum value;and correcting the modeled driving route function using the plurality ofcorrected parameters.
 5. The method of claim 4, wherein the calculatingof the error includes calculating the error using at least one ofposition coordinates, an angle, and a curvature between a point on thereference route function and a point on the driving route functioncorresponding to the one point on the reference route function.
 6. Themethod of claim 4, wherein the modeling of the reference route functionincludes: estimating a reference route function in a form of apolynomial function connecting the plurality of set reference points;setting a boundary condition for the plurality of reference pointsaccording to degree of the estimated reference route function; andmodeling the reference route function in the form of the polynomialfunction expressed as the curvature function according to thedisplacement by determining the estimated reference route functionaccording to the set boundary condition.
 7. The method of claim 4,wherein the correcting of the plurality of set parameters includes:assigning a weight to each of the plurality of set reference points; andcorrecting the plurality of set parameters using the assigned weight andthe calculated error.
 8. The method of claim 2, wherein the modeling ofthe driving route function includes: modeling a reference route functionusing the plurality of set reference points; comparing a position whenthe vehicle drives a predetermined distance according to the modeledreference route function and a position when the vehicle drives thepredetermined distance according to the modeled driving route functionto calculate an error and correcting the plurality of set parameters byregression analysis so that the calculated error has a minimum value;and correcting the modeled driving route function using the plurality ofcorrected parameters.
 9. The method of claim 2, wherein the modeling ofthe driving route function further includes verifying the modeleddriving route function.
 10. The method of claim 9, further comprising:verifying whether a separation distance between the modeled drivingroute function and each of the plurality of set reference points is lessthan or equal to a preset value; and adopting the modeled driving routefunction as a final driving route when all the separation distancesbetween the modeled driving route function and the plurality of setreference points are less than or equal to the preset value as a resultof the verification.
 11. A computing device for performing a method ofmodeling a driving route for automatic driving of a vehicle, thecomputing device comprising: a processor; a network interface; a memory;and a computer program loaded into the memory and executed by theprocessor, wherein the computer program includes: an instruction forsetting a plurality of reference points, and an instruction forgenerating a driving route for autonomous driving control of the vehiclebased on positions of the plurality of set reference points, and thegenerated driving route is a set of curves each corresponding to one ofa straight section, a curved section, and a clothoid section connectingthe straight section and the curved section and is expressed as acurvature function according to displacement.
 12. A non-transitorycomputer-readable medium having stored therein a computer program forcausing a computing apparatus to execute the following operations of:setting a plurality of reference points; and generating a driving routefor autonomous driving control of the vehicle based on positions of theplurality of set reference points, wherein the generated driving routeis a set of curves each corresponding to one of a straight section, acurved section, and a clothoid section connecting the straight sectionand the curved section and is expressed as a curvature functionaccording to displacement.